package org.ligson.cg.util;

import org.apache.commons.lang3.ArrayUtils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class ClpUtil {
    private static List<File> listDir(File dir) {
        List<File> files = new ArrayList<>();
        if (ArrayUtils.isNotEmpty(dir.listFiles())) {
            for (File file : Objects.requireNonNull(dir.listFiles())) {
                if (file.isFile()) {
                    files.add(file);
                } else {
                    files.addAll(listDir(file));
                }
            }
        }
        return files;
    }

    public static File findFile(String fileName) {
        String clp = System.getProperty("java.class.path");
        String[] files = clp.split(":");
        for (String file : files) {
            File file1 = new File(file);
            if (file1.isFile()) {
                if (file1.getName().equals(fileName)) {
                    return file1;
                }
            } else {
                List<File> dirs = listDir(file1);
                for (File dirFile : dirs) {
                    if (dirFile.getName().equals(fileName)) {
                        return dirFile;
                    }
                }
            }
        }
        return null;
    }

    public static void main(String[] args) {
        System.out.println(findFile("orm.properties"));
    }
}
